﻿using System.Collections.Generic;
using System.ServiceModel;
using VMukti.Business.CommonDataContracts;

namespace VMukti.Business.WCFServices.SuperNodeServices.NetP2P
{
    [ServiceContract(CallbackContract = typeof(INetP2PSuperNodeService))]
    public interface INetP2PSuperNodeService
    {
        [OperationContract(IsOneWay = true)]
        void svcJoin(string uname);

        [OperationContract(IsOneWay = true)]
        void svcSetSpecialMsg(string from, string to, string msg, clsModuleInfo objModInfo, string IPAddress);

        [OperationContract(IsOneWay = true, Name = "svcSetPageSpecialMsg")]
        void svcSetSpecialMsg(string from, string to, string msg, clsPageInfo objPageInfo, string IPAddress);
        //void svcSetSpecialMsg(string from, string to, string msg, List<clsModuleInfo> lstModInfo, string IPAddress);

        [OperationContract(IsOneWay = true)]
        void svcSetRemoveDraggedBuddy(string from, List<string> to, string msg, clsModuleInfo objModInfo, string IPAddress);

        [OperationContract(IsOneWay = true)]
        void svcAddDraggedBuddy(string from, string to, string msg, clsModuleInfo objModInfo, string IPAddress);

        [OperationContract(IsOneWay = true, Name = "svcAddPageDraggedBuddy")]
        void svcAddDraggedBuddy(string from, string to, string msg, List<clsModuleInfo> lstModInfo, string IPAddress);

        [OperationContract(IsOneWay = true)]
        void svcUnJoin(string uname);
    }

    public interface INetP2PSuperNodeChannel : IClientChannel, INetP2PSuperNodeService
    {
    }

}
